home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / bits / sem.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  3KB  |  88 lines

  1. /* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _SYS_SEM_H
  20. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  21. #endif
  22.  
  23. #include <sys/types.h>
  24.  
  25. /* Flags for `semop'.  */
  26. #define SEM_UNDO    0x1000        /* undo the operation on exit */
  27.  
  28. /* Commands for `semctl'.  */
  29. #define GETPID        11        /* get sempid */
  30. #define GETVAL        12        /* get semval */
  31. #define GETALL        13        /* get all semval's */
  32. #define GETNCNT        14        /* get semncnt */
  33. #define GETZCNT        15        /* get semzcnt */
  34. #define SETVAL        16        /* set semval */
  35. #define SETALL        17        /* set all semval's */
  36.  
  37.  
  38. /* Data structure describing a set of semaphores.  */
  39. struct semid_ds
  40. {
  41.   struct ipc_perm sem_perm;        /* operation permission struct */
  42.   __time_t sem_otime;            /* last semop() time */
  43.   unsigned long int __unused1;
  44.   __time_t sem_ctime;            /* last time changed by semctl() */
  45.   unsigned long int __unused2;
  46.   unsigned long int sem_nsems;        /* number of semaphores in set */
  47.   unsigned long int __unused3;
  48.   unsigned long int __unused4;
  49. };
  50.  
  51. /* The user should define a union like the following to use it for arguments
  52.    for `semctl'.
  53.  
  54.    union semun
  55.    {
  56.      int val;                <= value for SETVAL
  57.      struct semid_ds *buf;        <= buffer for IPC_STAT & IPC_SET
  58.      unsigned short int *array;        <= array for GETALL & SETALL
  59.      struct seminfo *__buf;        <= buffer for IPC_INFO
  60.    };
  61.  
  62.    Previous versions of this file used to define this union but this is
  63.    incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
  64.    one must define the union or not.  */
  65. #define _SEM_SEMUN_UNDEFINED    1
  66.  
  67. #ifdef __USE_MISC
  68.  
  69. /* ipcs ctl cmds */
  70. # define SEM_STAT 18
  71. # define SEM_INFO 19
  72.  
  73. struct  seminfo
  74. {
  75.   int semmap;
  76.   int semmni;
  77.   int semmns;
  78.   int semmnu;
  79.   int semmsl;
  80.   int semopm;
  81.   int semume;
  82.   int semusz;
  83.   int semvmx;
  84.   int semaem;
  85. };
  86.  
  87. #endif /* __USE_MISC */
  88.